R语言

您所在的位置:网站首页 time inc R语言

R语言

2024-07-17 01:27| 来源: 网络整理| 查看: 265

前面的视频我们了解了关于生存分析的KM曲线和log-rank检验,Cox回归的多因素生存分析,以及如何评估Cox模型假设有效性。在建立了cox回归模型之后,如何把模型展示出来,这就需要用到“列线图”。列线图,也叫nomogram图,是一种直观有效地展示Cox回归结果的一种方法。我们今天就来了解一下列线图。

关于列线图(Nomogram)1. 列线图长什么样子?

下面就是列线图的样子:

最左边的给出了一些变量名称,包括:points(评分),age(年龄),sex(性别),ECG(心电图),Total Points(总分),Risk(风险)。每个变量名右侧都有一条标有数值的直线轴,代表不同的评分或概率。

2. 怎么看这个图?

就那上图来说。我们想知道年龄45岁 (age=45) 的女性(sex=1)的患病风险,只需要将age=45岁向“ points(评分)”轴投射,则:points=50;同理 sex=1 时,points≈37。两者相加则“ Total points=87”;将此数值在“ Total points ”轴上向“ Risk ”概率轴投射,则可知风险大概在0.4和0.5之间。(参见图中红线)

如何制作列线图

下面我们看看如何通过R语言来绘制列线图。

1. 载入R包

我们打开Rstudio后,首先载入要用到的R包,如果没有安装的话,记得先安装。

2. 载入数据

今天我们用到的数据是survival程序包的lung数据:

data("lung") head(lung)

载入后我们看一下这个数据集:

在这个书籍中我们可以添加变量标签以便后续说明

这里,1 = male ,2 = female。

3. 数据打包

按照nomogrm()函数的要求,需要先“打包”数据,这是绘制列线图的关键步骤。"打包"用到的是datadist()函数, 该函数计算预测器的统计摘要,以自动估计和绘制效果。用户通常将最终的数据框提供给datadist()函数,并使用options函数设置数据分布。注意,如果修改数据框中的数据,则需要使用datadist()函数重置分布摘要。在R中输入: ??datadist可以查看详细说明。

4. 构建Cox模型

这里我们用 cph()函数来拟合Cox比例风险回归模型, 你也可以尝试使用 coxph()函数来拟合,自己可以尝试一下。

5. 构建生存函数

6. 绘图:预测中位生存时间

生成的图像是这样的,注意图的最下一行是“ Median Survival Time(中位生存时间)”。

7. 绘图:预测生存概率

这里要注意的是,lung数据的“time”是以“天”为单位。

生成的图像是这样的,注意图的最下一行是“ 1-year Survival Probability(1年生存率)”和“2-year Survival Probability(2年生存率)”。

评价COX回归的预测效果

我们主要计算“ C-index ”即C-指数和绘制矫正曲线,来对Cox回归的预测效果进行评价。

1. 计算C-指数

Somers' Rank Correlation for Censored Data    Response variable:Surv(time, status)                     C    Dxy  aDxy    SD    Z     P   n predict(res.cox) 0.397 -0.206 0.206 0.051 4.03 1e-04 228

2. 绘制校正曲线

这里对参数做一些说明:

绘制校正曲线前需要在模型函数中添加参数x=T, y=T,详细参考帮助

u需要与之前模型中定义好的time.inc一致,即365或730;

m要根据样本量来确定,由于标准曲线一般将所有样本分为3组(在图中显示3个点)

m代表每组的样本量数,因此m*3应该等于或近似等于样本量;

b代表最大再抽样的样本量

重新调整模型函数res.cox2

这里是加上了x=T, y=T,time.inc = 365三个参数:

构建校正曲线

通过??rms::calibrate查看详细参数说明

绘制校正曲线

生成的校准曲线图是这样的:



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3